package service

type IUserService interface {
	StoreUsersInRedis()
	GetUsersFromRedis()
}
type UserService struct{}

func NewUserService() *UserService {
	return &UserService{}
}

// StoreUsersInRedis TODO: 这个方法需要移植到RedisService服务中
//// StoreUsersInRedis 将用户记录存储到 Redis
//func (u UserService) StoreUsersInRedis(res models.SysUserUsersPageListRes, query models.SysUserUsersPageListParams, pageParams models.PaginationParams) error {
//
//	// 生成  userlist Redis 键
//	redisKey := GenerateUserListRedisKey(query, pageParams)
//	fmt.Println(redisKey)
//	// 将用户记录序列化为 JSON
//	resJson, err := json.Marshal(res)
//	if err != nil {
//		return err
//	}
//	fmt.Println(resJson)
//
//	// 存储到 Redis，设置一个过期时间，比如 1 小时
//	err = cache.Rdb.Set(cache.Rctx, redisKey, resJson, 0).Err()
//	if err != nil {
//		return err
//	}
//	fmt.Println("redis中存储数据")
//	return nil
//}

// GetUsersFromRedis TODO: 这个方法需要移植到RedisService服务中
// GetUsersFromRedis 从 Redis 中读取用户记录
//func (u UserService) GetUsersFromRedis(query models.SysUserUsersPageListParams, pageParams models.PaginationParams) (models.SysUserUsersPageListRes, error) {
//	var res models.SysUserUsersPageListRes
//
//	// 生成  userlist Redis 键
//	redisKey := GenerateUserListRedisKey(query, pageParams)
//
//	// 从 Redis 中获取用户记录
//	resJson, err := cache.Rdb.Get(cache.Rctx, redisKey).Result()
//	if errors.Is(err, redis.Nil) {
//		// Redis 中没有数据
//		return res, nil
//	} else if err != nil {
//		// 其他错误
//		return res, err
//	}
//
//	// 将 JSON 反序列化为用户记录
//	err = json.Unmarshal([]byte(resJson), &res)
//	if err != nil {
//		return res, err
//	}
//	fmt.Println("redis中读取的数据")
//	return res, nil
//}

// GenerateUserListRedisKey 将查询参数和分页参数序列化为 Redis 键
//func GenerateUserListRedisKey(query models.SysUserUsersPageListParams, pageParams models.PaginationParams) string {
//	queryString := utils.StructToQueryString(&query)
//	pageString := utils.StructToQueryString(&pageParams)
//	return "user_list:" + queryString + ":" + pageString
//}
